import { defineStore } from 'pinia'
import { ref, computed } from 'vue'

const useDataStore = defineStore(
    'data',
    () => {
        let userInfo = ref()    // 登录用户信息
        let isLogin = ref(false)    // 登录状态
        let messageList = ref([])   // 用户消息列表
        let notReadCount = ref(0)   // 未读消息数量
        let isMobile = ref(false)   // 当前是否移动端设备

        // 设置用户信息
        const setUserInfo = (user_info) => {
            userInfo.value = user_info
        }
        // 设置登录状态
        const setIsLogin = (flag) => {
            isLogin.value = flag
        }
        // 设置用户消息列表
        const setMessageList = (list) => {
            notReadCount.value = list.filter(item => item.message_read == '0').length
            messageList.value = list
        }
        // 设置当前设备类型
        const setDeviceType = (flag) => {
            isMobile.value = flag
        }
        return {
            userInfo,
            isLogin,
            messageList,
            notReadCount,
            isMobile,
            setUserInfo,
            setIsLogin,
            setMessageList,
            setDeviceType
        }
    },
    {
        persist: {
            enabled: true, // true 表示开启持久化保存
            // strategies: [
            //     {
            //         key: 'user', // 在本地存储中使用的键
            //         storage: localStorage, // 或者 sessionStorage
            //         // paths: ['username'], // 指定要持久化的状态，如果是全部，则不指定
            //     },
            // ],
        }
    }
);

export default useDataStore;